﻿using System;

using Spencen.Mobile.Markup.Converters;

namespace Spencen.Mobile.UI.Markup.Converters
{
     public class PaddingConverter : Converter<Padding>
    {
         public override Padding ConvertFromString( string input, Type toType )
         {
             var inputs = input.Split( ',' );
             if ( inputs.Length == 1 )
                 return new Padding( int.Parse( inputs[ 0 ] ) );
             else if ( inputs.Length == 2 )
                 return new Padding( int.Parse( inputs[ 0 ] ), int.Parse( inputs[ 1 ] ) );
             else if ( inputs.Length == 4 )
                 return new Padding( int.Parse( inputs[ 0 ] ), int.Parse( inputs[ 1 ] ), int.Parse( inputs[ 2 ] ), int.Parse( inputs[ 3 ] ) );
             throw new ArgumentOutOfRangeException( "input" );
         }

         public override string ConvertToString( Padding input )
         {
             if ( input.Width == input.Height )
                 return input.Width.ToString();
             else if ( input.Left == input.Right && input.Top == input.Bottom )
                 return string.Format( "{0},{1}", input.Width, input.Height );
             else
                 return string.Format( "{0},{1},{2},{3}", input.Left, input.Top, input.Right, input.Bottom );
         }
    }
}
